<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" lang="zh" xml:lang="zh">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>概念: 事件和信号</title>
<meta content="Concept" name="uma.type">
<meta content="events_and_signals" name="uma.name">
<meta content="事件和信号" name="uma.presentationName">
<meta name="element_type" content="concept">
<meta content="description" name="filetype">
<meta name="role" content="">
<link type="text/css" href="./../../../css/default.css" rel="StyleSheet">
<script language="JavaScript" type="text/javascript" src="./../../../scripts/ContentPageResource.js"></script><script language="JavaScript" type="text/javascript" src="./../../../scripts/ContentPageSection.js"></script><script language="JavaScript" type="text/javascript" src="./../../../scripts/ContentPageSubSection.js"></script><script language="JavaScript" type="text/javascript" src="./../../../scripts/ContentPageToolbar.js"></script><script language="JavaScript" type="text/javascript" src="./../../../scripts/contentPage.js"></script><script language="JavaScript" type="text/javascript">
					var backPath = './../../../';
					var imgPath = './../../../images/';
					var nodeInfo=[{view: "view:_LVCagP5WEdmAzesbYywanQ", path: ["_LVCagP5WEdmAzesbYywanQ", "_zRigkAILEdq-_NKqZM1EhA", "_qwxC8N7YEdmjRZts2c4ZjQ", "{4AC346F0-E6FC-4D2C-8410-2EDF8DDDC91D}", "1.800598287887014E-305"]}, {view: "view:_FCx1oN7CEdmsEI4YDGX2ag", path: ["_FCx1oN7CEdmsEI4YDGX2ag", "_f6_YwN7DEdmsEI4YDGX2ag", "_qwxC8N7YEdmjRZts2c4ZjQ", "{4AC346F0-E6FC-4D2C-8410-2EDF8DDDC91D}", "1.800598287887014E-305"]}, {view: "view:_FCx1oN7CEdmsEI4YDGX2ag", path: ["_FCx1oN7CEdmsEI4YDGX2ag", "_Jvt1cAIaEdqEutyfYo0quQ", "_jijhYAIaEdqEutyfYo0quQ", "_n7ZcgN7REdmjRZts2c4ZjQ", "{53AF0AB8-E1A1-45E7-8E4F-AFE2427633C6}", "1.800598287887014E-305"]}, {view: "view:_FCx1oN7CEdmsEI4YDGX2ag", path: ["_FCx1oN7CEdmsEI4YDGX2ag", "_Jvt1cAIaEdqEutyfYo0quQ", "_jijhYAIaEdqEutyfYo0quQ", "_n7ZcgN7REdmjRZts2c4ZjQ", "{8CA124DA-A80C-45D7-BC65-BA6B4247FF11}", "1.800598287887014E-305"]}, {view: "view:_FCx1oN7CEdmsEI4YDGX2ag", path: ["_FCx1oN7CEdmsEI4YDGX2ag", "_jD8dUAIbEdqEutyfYo0quQ", "_vzRNgDIcEdqDs_9ORT1Rig", "1.800598287887014E-305"]}];
					contentPage.preload(imgPath, backPath, nodeInfo,  '', false, false, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td valign="top"><a name="Top"></a>
<div id="page-guid" value="1.800598287887014E-305"></div>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap="true" class="pageTitle">概念：事件和信号</td><td width="100%">
<div id="contentPageToolbar" align="right"></div>
</td>
</tr>
</table>
<table cellspacing="0" cellpadding="0" border="0" width="100%">
<tr>
<td class="pageTitleSeparator"><img height="1" title="" alt="" src="./../../../images/shim.gif"></td>
</tr>
</table>
<div class="overview">
<table cellpadding="0" cellspacing="0" border="0" width="97%">
<tr>
<td width="50"><img title="" alt="" src="./../../../images/concept.gif"></td><td>
<table cellpadding="0" cellspacing="0" border="0" class="overviewTable">
<tr>
<td valign="top">事件是对所发生的重要事情（具有时间和空间位置）的说明。信号是一种表示两个实例之间异步激励的规范的事件类型。</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">关系</div>
<div class="sectionContent">
<table cellpadding="0" cellspacing="0" border="0" class="sectionTable">
<tr valign="top">
<th scope="row" class="sectionTableHeading">相关元素</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../../core.base_rup/tasks/identify_design_elements_E884AB82.html" guid="{97D7343A-6993-4AB7-8F86-4DAC8C9075C8}">确定设计元素</a>
</li>
<li>
<a href="./../../../core.base_rup/workproducts/rup_event_741355DE.html" guid="{53AF0AB8-E1A1-45E7-8E4F-AFE2427633C6}">事件</a>
</li>
<li>
<a href="./../../../core.base_rup/workproducts/rup_signal_AD16C912.html" guid="{8CA124DA-A80C-45D7-BC65-BA6B4247FF11}">信号</a>
</li>
<li>
<a href="./../../../core.base_rup/roles/rup_software_architect_DB0BF177.html" guid="{4AC346F0-E6FC-4D2C-8410-2EDF8DDDC91D}">软件设计人员</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">主要描述</div>
<div class="sectionContent">
<table cellpadding="0" cellspacing="0" border="0" class="sectionTable">
<tr valign="top">
<td class="sectionTableSingleCell"><a id="Top" name="Top"></a> 
<h3>
    <a id="Introduction" name="Introduction">简介</a>
</h3>
<p>
    在真实世界中发生的事情通常是同时和不可预测的。“发生的事情”称为“事件”。
</p>
<p>
    在状态机上下文中，事件对可能触发状态过渡的刺激的发生进行建模。事件包括信号、调用、经过时间或状态更改。事件可以是同步或异步的。
</p>
<p>
    “信号”是一种代表两个实例之间异步激励的规范的事件类型。
</p>
<h3>
    <a id="Kinds of events" name="Kinds of events">事件类型</a>
</h3>
<p>
    事件可以是外部或内部的。外部事件是在系统及其参与者之间传送的那些事件。 内部事件是在系统中存在的对象之间传送的那些事件。有四种类型的事件：信号、调用、经过时间和状态更改。
</p>
<h4>
    <a id="Signals" name="Signals">信号</a>
</h4>
<p>
    信号代表由一个对象异步地分派（抛出），然后由另一个对象接收（捕捉）的对象。异常是一种信号类型的示例。
</p>
<p>
    信号可以有实例，但通常不会显式地对这些实例建模。泛化关系中可能会涉及信号，允许事件层次结构的建模。
</p>
<p>
    信号可以有属性和操作。信号的属性用作它的参数。
</p>
<p>
    可以作为状态机中状态过渡的操作发送信号，或作为交互中发送的消息发送信号。操作的执行也可以发送信号。对类或接口建模时，指定元素行为的一个重要方面是指定其操作可以发送的信号。使用依赖关系对操作及它可以发送的事件之间的关系进行建模，定型为
    &lt;&lt;send&gt;&gt;。
</p>
<h4>
    <a id="Call events" name="Call events">调用事件</a>
</h4>
<p>
    就如同信号事件代表信号的出现一样，调用事件代表操作的分派。在两种情况中，事件可能触发状态机中的状态过渡。
</p>
<p>
    但信号是异步事件，而调用事件通常是同步的。这表示当一个对象调用另一个对象中的操作时，控制从发送者传送到接收者，直到操作完成为止（此时控制返回至发送者）。对调用事件建模的可视化方法与信号事件建模一样。在两种情况中，事件与其参数显示在一起，作为状态过渡的触发器。
</p>
<p>
    虽然没有可视的提示来区分信号事件和调用事件，但其不同之处将显示在接收器类中，因为它将声明一个处理调用事件的操作。在信号情况下，将有一个由该信号触发的状态机中的状态过渡。
</p>
<h4>
    <a id="Time events" name="Time events">时间和更改事件</a>
</h4>
<p>
    时间事件代表经过的时间。时间事件使用公共时钟机制，用于同步系统中依赖于时间的部分。更改事件表示系统状态的更改或某些条件得到满足。
</p>
<h3>
    <a id="sending events" name="sending events">发送和接收事件</a>
</h3>
<p>
    信号和调用事件至少涉及两个对象：发送者和接收者。发送信号时，发送者分派信号，然后继续其控制流而不会等待来自接收者的返回结果。这与操作调用的语义形成对比，在操作调用中发送者在继续其控制流之前，等待接收者的响应。因此，操作通常用于表示“阻塞”行为（阻塞或防止其他事件发生的行为），而信号用于表示非阻塞行为。
</p>
<p>
    一个对象将一个信号发送给一组对象的行为称为“多播”，并且通过将信号发送至一个保存一组接收者的容器来表示。广播是将信号发送给系统中的所有对象的行为，并且通过将信号发送至代表整个系统的一个对象来表示；该“系统对象”然后实现消息分发机制，确保将信号发送至系统中的所有相应对象。
</p><br />
<br /></td>
</tr>
</table>
</div>
<table cellpadding="0" cellspacing="0" border="0" class="copyright">
<tr>
<td class="copyright"><p>
    &copy; &nbsp;Copyright IBM Corp.&nbsp;1987, 2006. &nbsp;All Rights Reserved.
</p></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script language="JavaScript" type="text/javascript">
				contentPage.onload();
			</script>
</html>
